#！/bin/bash
#获取ETL时间
etl_date=$(date -d "-1 day" +'+%Y-%m-%d')
#sql脚本目录
SQL_DIR="/aml/dws/sql"
LOG_DIR="/aml/dws/log"
#定义要执行的sql文件
TABLES=("dws_aml_customer_risk_profile"
        "dws_aml_transaction_behavior"
        "dws_aml_risk_dashboard")
# 循环执行每个 sql 文件
for table in "${TABLES[@]}"; do
    sql_file="${SQL_DIR}/dws_inc_${table}.sql"
    log_file="${LOG_DIR}/dws_inc_${table}_${dt}.log"

    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 开始执行: ${table}" >> ${log_file}
# 判断 sql 文件是否存在
    if [ ! -f "${sql_file}" ]; then
        echo "ERROR: SQL 文件不存在 -> ${sql_file}" >> ${log_file}
        continue
    fi

    # 执行 Hive SQL，传入变量 dt，输出日志
    nohup hive -hivevar dt="etl_date" -f "$sql_file" > "$log_file" &
done

echo "[$(date '+%Y-%m-%d %H:%M:%S')] 所有增量任务执行完成"


#!/bin/bash
# 全量覆盖脚本


# 定义需要全量抽取的 表名  数据集
arr=(ads_aml_customer_risk_profile
	ads_aml_daily_risk_report
	ads_aml_regulatory_monthly
	ads_aml_alert_efficiency)

# 循环数值  HIVE导出MYSQL
for i in ${arr[@]}; do
  sqoop export \
  --connect jdbc:mysql://192.168.88.148:3306/ads_aml \
  --username root \
  --password 123456 \
  --table $i \
  --hcatalog-database ads \
  --hcatalog-table $i \
  --input-fields-terminated-by '\001' \
  --input-null-string '\\N' \
  --input-null-non-string '\\N' \
  -m 1
done
